;
; usbxhci.inf
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;

[Version]
signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%Msft%
PnpLockdown=1
DriverVer = 01/19/2022,10.0.19041.1503

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
usbxhci.sys = 3426

UsbXhciCompanion.dll = 3426


[ControlFlags]
BasicDriverOk = *
ExcludeFromSelect = *

[DestinationDirs]
DefaultDestDir  = 12
TrustletCopy    = 12,UMDF

[Manufacturer]
%Generic.Mfg%=Generic,NTamd64

;
; ---------------------- xHCI Controllers ----------------------
;

[Generic.NTamd64]
%PCI\CC_0C0330.DeviceDesc%=Generic.Install,PCI\CC_0C0330
%ACPI\PNP0D10.DeviceDesc%=Generic.Install,ACPI\PNP0D10
%ACPI\PNP0D15.DeviceDesc%=Generic_NoDebug.Install,ACPI\PNP0D15


[Generic.Install.NT]
CopyFiles=Generic.CopyFiles,TrustletCopy
AddProperty=Generic.AddProperty
ExcludeID=PCI\VEN_1B73&DEV_1000&CC_0C0330
ExcludeID=PCI\VEN_1B73&DEV_1400&CC_0C0330
ExcludeID=PCI\VEN_1B73&DEV_1009&REV_00

;
; FeatureScore values between 0x00-0x7F are reserved. Values 0x81-0xFE are for OEMs.
;
FeatureScore=80

[Generic.Install.NT.HW]
AddReg=Generic_AddReg.HW
Include=pci.inf
Needs=PciD3ColdSupported.HW

[Generic_AddReg.HW]
HKR, Interrupt Management,, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties,, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1

[Generic.Install.NT.Services]
AddService=USBXHCI, 2, Generic.AddService

[Generic.AddService]
DisplayName   = %PCI\CC_0C0330.DeviceDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\USBXHCI.SYS
Dependencies  = Ucx01000
AddReg        = USBXHCI.AddReg

[USBXHCI.AddReg]
HKR,, BootFlags,  0x00010001, 16 ; CM_SERVICE_USB3_DISK_BOOT_LOAD
; Opt into DMA remapping for external XHCI controllers in retail builds
; Or for internal/all XHCI controllers on selfhost/internal builds with
; DMA remapping velocity set for testing purposes.
HKR, Parameters, DmaRemappingCompatibleSelfhost, 0x00010001, 1
HKR, Parameters, DmaRemappingCompatible, 0x00010001, 2

[Generic.Install.NT.WMI]
; Set access permissions for UI WMI GUIDs
WMIInterface = {6D88B760-85FA-426a-92D2-3B17CC39A5CA},,WMIGuidSecurity_AllRights

[WMIGuidSecurity_AllRights]
security="O:BAG:BAD:(A;;FA;;;BA)(A;;GR;;;LS)(A;;FA;;;SY)"

[Generic.CopyFiles]
USBXHCI.SYS,,,0x100

[TrustletCopy]

UsbXhciCompanion.dll,,,0x100


[Generic.AddProperty]
; DEVPKEY_Device_DebuggerSafe, DEVPROP_TYPE_UINT32
{540b947e-8b40-45bc-a8a2-6a0b894cbda2},12,7,,1


[Generic.Install.NT.Wdf]
CompanionConfiguration = UsbXhci, UsbXhci_CompanionConfig
UmdfService = UsbXhciCompanion, UmdfCompanionService_Config
UmdfHostPriority = PriorityHigh

[UsbXhci_CompanionConfig]
CompanionServices = UsbXhciCompanion

[UmdfCompanionService_Config]
UmdfLibraryVersion = 2.23.0
ServiceBinary = %12%\UMDF\UsbXhciCompanion.dll
ServiceType = SecureCompanion
TrustletIdentity=4096    ; Change this to 8 once WUDF companion process starts using metadata from the trustlet DLL

;
; ---------------------- xHCI Controllers without STD Debug support ----------------------
;                            Don't write DebuggerSafe property
;

[Generic_NoDebug.Install.NT]
CopyFiles=Generic.CopyFiles,TrustletCopy
FeatureScore=80

[Generic_NoDebug.Install.NT.HW]
AddReg=Generic_AddReg.HW
Include=pci.inf
Needs=PciD3ColdSupported.HW

[Generic_NoDebug.Install.NT.Services]
AddService=USBXHCI, 2, Generic.AddService


[Generic_NoDebug.Install.NT.Wdf]
CompanionConfiguration = UsbXhci, UsbXhci_CompanionConfig
UmdfService = UsbXhciCompanion, UmdfCompanionService_Config
UmdfHostPriority = PriorityHigh

;
; --------------------------- Strings --------------------------
;

[Strings]
;Non-Localizable
Msft = "Microsoft"

;Localizable
Generic.Mfg = "Generic USB xHCI Host Controller"
PCI\CC_0C0330.DeviceDesc="USB xHCI Compliant Host Controller"
ACPI\PNP0D10.DeviceDesc="USB xHCI Compliant Host Controller"
ACPI\PNP0D15.DeviceDesc="USB xHCI Compliant Host Controller"
